package pe.com.sysaut.util;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

public class Util {

	public static void printJson(HttpServletResponse response, String json) {
		response.setContentType("application/json; charset=UTF-8");
		PrintWriter out = null;
		try {
			out = response.getWriter();
		} catch (IOException e) {
			e.printStackTrace();
		}
		//System.out.println("SELECT----->"+json);
		out.print(json);
	}
	
	public static String convertirDateToStringFormat(Date fecha, String format) {
		String strFecha = "";
		try {
			if(fecha!=null){
				SimpleDateFormat formateador = new SimpleDateFormat(format);
				strFecha = formateador.format(fecha);
			}
		} catch (Exception e) {
			strFecha = "";
			e.printStackTrace();
		}
		return strFecha;
	}
	
	public static Date convertirStringFormatToDate(String fecha, String format) {
		Date fechsActual = null;
		try {
			SimpleDateFormat formateador = new SimpleDateFormat(format);
			fechsActual = formateador.parse(fecha);
		} catch (Exception e) {
			fechsActual = Calendar.getInstance().getTime();
			e.printStackTrace();
		}
		return fechsActual;
	}
	
	public static int convertirStringAEntero(String numero) {
		int resultado=0;
		try {
			resultado = Integer.parseInt(numero);
		} catch (Exception e) {
			resultado=0;
		}
		return resultado;
	}
	
	public static short convertirStringAShort(String numero) {
		short resultado=0;
		try {
			resultado = Short.parseShort(numero);
		} catch (Exception e) {
			resultado=0;
		}
		return resultado;
	}
	
	public static String convertirStringToStringDate(String fecha,String formatUsuario,String formato){
		
		SimpleDateFormat fromUser=new SimpleDateFormat(formatUsuario);
		SimpleDateFormat myFormato=new SimpleDateFormat(formato);
		
		String strFecha="";
		try{
			strFecha=myFormato.format(fromUser.parse(fecha));
		}
		catch(Exception ex){
			strFecha="";
			ex.printStackTrace();
		}
		return strFecha;
	}
	
	
	
	public static Date obtenerFechaActual() {
		Calendar calendar = Calendar.getInstance();
		return calendar.getTime();
	}
	
	public static String formatearAEneEnteros(int d, int n) {
		String formato = "";
		for (int i = 0; i < n; i++) {
			formato = formato + "0";
		}
		DecimalFormat f = new DecimalFormat(formato);
		return f.format(d);
	}
	
	public static int convertirStringToInt(String numero){
		return Integer.parseInt(numero.trim());
	}
	
	
	public static String textFormato(String formato, int text) {
		 String code = String.format(formato, text);
		 return code;
	}
	
	public static Date formatDate(Date fecha, String format) {
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		Date date = null;
		try {
		date = sdf.parse(sdf.format(fecha));
		} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		}
		 
		return date;
		}
	
	public static String obtenerMapMesaje(String message, String tipo){
		Map<String,Object> mapResultado=new HashMap<String, Object>();
		mapResultado.put(ConstanteSYSAUT.CONSTATE_ID_MAP_MENSAJE_MENSAJE, message);
		mapResultado.put(ConstanteSYSAUT.CONSTATE_ID_MAP_TIPO, tipo);
		return (new Gson()).toJson(mapResultado);
	}

	
	
}
